package com.elem.test;

import java.lang.reflect.Constructor;

public class ClassDemo02 {
    public static void main(String[] args) throws Exception {

        // 1. 通过Class类的静态方法forName()
        Class accountClass = Class.forName("com.neuedu.elem.test.Account");
        // 2.确定使用的构造器
//        Constructor[] constructors = accountClass.getConstructors();
        Constructor[] constructors = accountClass.getDeclaredConstructors();
        for (Constructor constructor : constructors) {
            System.out.println(constructor);
        }

//        Constructor constructor = accountClass.getConstructor(String.class, double.class);
//        System.out.println(constructor);

        // 正常使用构造创建对象
//        new Account("Tom", 10000);

        // 创建对象
//        Object account = constructor.newInstance("Jerry", 5000);
//        System.out.println(account);

        // 简洁方式创建对象：使用Class类的newInstance()方法。但是类中必须要有默认的无参构造
        Object o = accountClass.newInstance();

    }
}
